Many of the current day graphical user interfaces (GUIs) involve rendering video as a part of a 3D graphical scene. For example, a video playback device may contain a GUI that utilizes 3D rendered graphics to create a 3D graphical scene. A user may navigate through the GUI to find videos that are stored on the video playback device. As the user navigates through the GUI, the videos may playback as a preview clip within the 3D graphical scene.
In order to display the video within the 3D GUI, the frames of video are first decoded, then a video processor renders a 3D scene using the decoded video frames. The video processor then outputs the scene to a display.
Currently, video decoders decode video in a single uncompressed format such as the YUV 4:2:0 format. The decoded video is output from the video decoder and into the display processor. The display processor may overlay 2D images (i.e., textures in the 3D context) and then output a signal to the display where the images are displayed. In some cases, the display processor converts the video from the YUV 4:2:0 format to the RGB 8:8:8 format before overlaying textures and rendering the video for display on the display device.
However, in order to render video in a 3D graphical scene, the above model is inefficient. As stated above, video is traditionally input into the graphics pipeline of the display processor from the video decoder in the YUV 4:2:0 format, which is uncompressed. The display processor must then convert the video frames to a compressed format and then use the compressed format to render the 3D GUI by overlaying textures. This leads to extra bandwidth required to load uncompressed video textures into the graphics pipeline and extra instruction in the graphics pipeline to convert uncompressed textures into compressed textures.
Previous solutions to reducing the bandwidth and instructions required in the graphics pipeline have included generating a second copy of the video offline in a compressed format that would not require conversion by the display processor. Such solutions, however, do not allow for on-the-fly display of videos in the video display device such as from a source sending live content to the video display device in an uncompressed format. Further, extra external processing and memory is required to store the additional formats of the video.